tmap_mode('view')
tmap mode set to interactive viewing
tm_shape(mi_2010_spat) + tm_fill("MOVEDNET", style='sd', palette='PiYG')
Variable(s) "MOVEDNET" contains positive and negative values, so midpoint is set to 0. Set midpoint = NA to show the full spectrum of the color palette.
tm_shape(mi_2015_spat) + tm_fill("MOVEDNET", style='quantile', palette='PiYG')
Variable(s) "MOVEDNET" contains positive and negative values, so midpoint is set to 0. Set midpoint = NA to show the full spectrum of the color palette.
mi_2020_raw <- get_flows(geography = 'county subdivision',
#                  breakdown = 'RACE',
#                  breakdown_labels = TRUE,
                  state = 'MI',
                  county = 'Cheboygan',
                  output = 'wide',
                  year=2020)
Using FIPS code '26' for state 'MI'
Using FIPS code '031' for 'Cheboygan County'
mi_2020_sum <- mi_2020_raw |> 
  group_by(GEOID1) |> 
  summarize(MOVEDOUT_M = sum(MOVEDOUT_M, na.rm=TRUE),
            MOVEDIN = sum(MOVEDIN, na.rm=TRUE),
            MOVEDOUT = sum(MOVEDOUT, na.rm=TRUE),
            MOVEDNET = sum(MOVEDNET, na.rm=TRUE),
            MOVEDNET_M = sum(MOVEDNET_M, na.rm=TRUE))

csd <- tigris::county_subdivisions(state="MI")
Retrieving data for the year 2021
Using FIPS code '26' for state 'MI'
mi_2020_spat <- merge(csd, mi_2020_sum, by.x = 'GEOID', by.y = 'GEOID1')

tm_shape(mi_2020_spat) + tm_fill("MOVEDNET", style='sd', palette='PiYG')
Variable(s) "MOVEDNET" contains positive and negative values, so midpoint is set to 0. Set midpoint = NA to show the full spectrum of the color palette.
LS0tDQp0aXRsZTogIlRlc3RpbmcgRGF0YSBQdWxsIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeWNlbnN1cykNCmxpYnJhcnkodGlncmlzKQ0KbGlicmFyeSh0aWR5dmVyc2UpICMgSSBoYXRlIG15c2VsZi4NCmxpYnJhcnkoc2YpDQpsaWJyYXJ5KHRtYXApDQp0bWFwX21vZGUoJ3ZpZXcnKQ0KYGBgDQoNCmBgYHtyfQ0KDQp0ZXN0IDwtIHRpZ3Jpczo6Y291bnR5X3N1YmRpdmlzaW9ucygiTUkiKQ0KY250cyA8LSB0aWdyaXM6OmNvdW50aWVzKCJNSSIpDQoNCnRtX3NoYXBlKGNudHMpICsgdG1fZmlsbCgiTUFQX0NPTE9SUyIsIGFscGhhPS41KSArIHRtX3NoYXBlKHRlc3QpICsgdG1fYm9yZGVycygpDQoNCnRtX3NoYXBlKHRlc3QpICsgdG1fYm9yZGVycygpICsgdG1fZmlsbChhbHBoYT0uNSkNCg0KIyBLaW5ncywgQ0ENCiMgVHVsYXJlLCBDQQ0KYGBgDQoNCmBgYHtyfQ0KbWlfMjAxMF9yYXcgPC0gZ2V0X2Zsb3dzKGdlb2dyYXBoeSA9ICdjb3VudHkgc3ViZGl2aXNpb24nLA0KICAgICAgICAgICAgICAgICAgc3RhdGUgPSAnTUknLA0KICAgICAgICAgICAgICAgICAgY291bnR5ID0gJ0NoZWJveWdhbicsDQogICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnd2lkZScsDQogICAgICAgICAgICAgICAgICB5ZWFyPTIwMTIpDQoNCm1pXzIwMTBfc3VtIDwtIG1pXzIwMTBfcmF3IHw+IA0KICBncm91cF9ieShHRU9JRDEpIHw+IA0KICBzdW1tYXJpemUoTU9WRURPVVRfTSA9IHN1bShNT1ZFRE9VVF9NLCBuYS5ybT1UUlVFKSwNCiAgICAgICAgICAgIE1PVkVESU4gPSBzdW0oTU9WRURJTiwgbmEucm09VFJVRSksDQogICAgICAgICAgICBNT1ZFRE9VVCA9IHN1bShNT1ZFRE9VVCwgbmEucm09VFJVRSksDQogICAgICAgICAgICBNT1ZFRE5FVCA9IHN1bShNT1ZFRE5FVCwgbmEucm09VFJVRSksDQogICAgICAgICAgICBNT1ZFRE5FVF9NID0gc3VtKE1PVkVETkVUX00sIG5hLnJtPVRSVUUpKQ0KDQpjc2QgPC0gdGlncmlzOjpjb3VudHlfc3ViZGl2aXNpb25zKHN0YXRlPSJNSSIpDQoNCm1pXzIwMTBfc3BhdCA8LSBtZXJnZShjc2QsIG1pXzIwMTBfc3VtLCBieS54ID0gJ0dFT0lEJywgYnkueSA9ICdHRU9JRDEnKQ0KDQp0bV9zaGFwZShtaV8yMDEwX3NwYXQpICsgdG1fZmlsbCgiTU9WRURORVQiLCBzdHlsZT0nc2QnLCBwYWxldHRlPSdQaVlHJykNCmBgYA0KDQoNCmBgYHtyfQ0KbWlfMjAxNV9yYXcgPC0gZ2V0X2Zsb3dzKGdlb2dyYXBoeSA9ICdjb3VudHkgc3ViZGl2aXNpb24nLA0KIyAgICAgICAgICAgICAgICAgIGJyZWFrZG93biA9ICdSQUNFJywNCiMgICAgICAgICAgICAgICAgICBicmVha2Rvd25fbGFiZWxzID0gVFJVRSwNCiAgICAgICAgICAgICAgICAgIHN0YXRlID0gJ01pJywNCiAgICAgICAgICAgICAgICAgIGNvdW50eSA9ICdDaGVib3lnYW4nLA0KICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ3dpZGUnLA0KICAgICAgICAgICAgICAgICAgeWVhcj0yMDEzKQ0KDQptaV8yMDE1X3N1bSA8LSBtaV8yMDE1X3JhdyB8PiANCiAgZ3JvdXBfYnkoR0VPSUQxKSB8PiANCiAgc3VtbWFyaXplKE1PVkVET1VUX00gPSBzdW0oTU9WRURPVVRfTSwgbmEucm09VFJVRSksDQogICAgICAgICAgICBNT1ZFRElOID0gc3VtKE1PVkVESU4sIG5hLnJtPVRSVUUpLA0KICAgICAgICAgICAgTU9WRURPVVQgPSBzdW0oTU9WRURPVVQsIG5hLnJtPVRSVUUpLA0KICAgICAgICAgICAgTU9WRURORVQgPSBzdW0oTU9WRURORVQsIG5hLnJtPVRSVUUpLA0KICAgICAgICAgICAgTU9WRURORVRfTSA9IHN1bShNT1ZFRE5FVF9NLCBuYS5ybT1UUlVFKSkNCg0KbWlfMjAxNV9zcGF0IDwtIG1lcmdlKGNzZCwgbWlfMjAxNV9zdW0sIGJ5LnggPSAnR0VPSUQnLCBieS55ID0gJ0dFT0lEMScpDQoNCnRtX3NoYXBlKG1pXzIwMTVfc3BhdCkgKyB0bV9maWxsKCJNT1ZFRE5FVCIsIHN0eWxlPSdxdWFudGlsZScsIHBhbGV0dGU9J1BpWUcnKQ0KYGBgDQoNCg0KYGBge3J9DQptaV8yMDIwX3JhdyA8LSBnZXRfZmxvd3MoZ2VvZ3JhcGh5ID0gJ2NvdW50eSBzdWJkaXZpc2lvbicsDQojICAgICAgICAgICAgICAgICAgYnJlYWtkb3duID0gJ1JBQ0UnLA0KIyAgICAgICAgICAgICAgICAgIGJyZWFrZG93bl9sYWJlbHMgPSBUUlVFLA0KICAgICAgICAgICAgICAgICAgc3RhdGUgPSAnTUknLA0KICAgICAgICAgICAgICAgICAgY291bnR5ID0gJ0NoZWJveWdhbicsDQogICAgICAgICAgICAgICAgICBvdXRwdXQgPSAnd2lkZScsDQogICAgICAgICAgICAgICAgICB5ZWFyPTIwMjApDQoNCm1pXzIwMjBfc3VtIDwtIG1pXzIwMjBfcmF3IHw+IA0KICBncm91cF9ieShHRU9JRDEpIHw+IA0KICBzdW1tYXJpemUoTU9WRURPVVRfTSA9IHN1bShNT1ZFRE9VVF9NLCBuYS5ybT1UUlVFKSwNCiAgICAgICAgICAgIE1PVkVESU4gPSBzdW0oTU9WRURJTiwgbmEucm09VFJVRSksDQogICAgICAgICAgICBNT1ZFRE9VVCA9IHN1bShNT1ZFRE9VVCwgbmEucm09VFJVRSksDQogICAgICAgICAgICBNT1ZFRE5FVCA9IHN1bShNT1ZFRE5FVCwgbmEucm09VFJVRSksDQogICAgICAgICAgICBNT1ZFRE5FVF9NID0gc3VtKE1PVkVETkVUX00sIG5hLnJtPVRSVUUpKQ0KDQpjc2QgPC0gdGlncmlzOjpjb3VudHlfc3ViZGl2aXNpb25zKHN0YXRlPSJNSSIpDQoNCm1pXzIwMjBfc3BhdCA8LSBtZXJnZShjc2QsIG1pXzIwMjBfc3VtLCBieS54ID0gJ0dFT0lEJywgYnkueSA9ICdHRU9JRDEnKQ0KDQp0bV9zaGFwZShtaV8yMDIwX3NwYXQpICsgdG1fZmlsbCgiTU9WRURORVQiLCBzdHlsZT0nc2QnLCBwYWxldHRlPSdQaVlHJykNCmBgYA==